package com.cskaoyan.service;

import com.cskaoyan.bean.bo.*;
import com.cskaoyan.bean.data.BaseData;
import com.cskaoyan.bean.pojo.Storage;
import com.cskaoyan.bean.pojo.System;
import com.cskaoyan.bean.vo.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.util.List;

/**
 * @author thz
 * @class SystemService
 */
public interface SystemService {
    BaseData<AdminListItemVO> queryAdminInfo(AdminListBO adListBo);

    AdminCreateVO addAdmin(AdminCreateBO adminCreateBO);

    AdminUpdateVo changeAdmin(AdminUpdateBO adminUpdateBO);

    void removeAdmin(AdminDeleteBO adminDeleteBO);

    List<RoleOptionsVO> queryRole();

    StorageCreateVO addStorage(File newFile, MultipartFile file);

    BaseData<RoleListItemVO> queryRoleList(RoleListBO roleListBO);

    RoleCreateVO createRole(RoleCreateBO roleCreateBO);

    void removeRole(RoleDeleteBO roleDeleteBO);

    void changeRole(RoleUpdateBO roleUpdateBO);

    RolePermissionVO queryRolePermission(Integer roleId);

    BaseData<StorageListItemVO> queryStorage(StorageListBO storageListBO);

    StorageUpdateVO changeStorage(StorageUpdateBo storageUpdateBo);

    void removeStorage(StorageDeleteBO storageDeleteBO);

    BaseData<LogListItemVO> queryLog(LogListBO logListBO);

    void changeRolePermission(RolePermissionPostBO rolePermissionPostBO);

    /**
     * @author: lsy
     * @title: querySystemByKeyName
     * @description: 根据keyName查询system表信息
     * @param: [keyName]
     * @return: com.cskaoyan.bean.pojo.System
     */
    System querySystemByKeyName(String keyName);
}
